﻿namespace Game.Lib.CSG
{
    public abstract class Shape3D : Shape
    {
        public virtual Vector3 Pos { get; set; }
        public virtual Vector3 Size { get; set; }
        public virtual Quaternion Rot { get; set; }
        public abstract float SurfaceArea { get; }
        public abstract float Volume { get; }
        public abstract AABB GetBoundingBox();
        public abstract Ellipsoid GetBoundingSphere();
        public abstract bool Inside(Vector3 pos);
        public abstract Intersection RayCast(Ray r);
    }
}
